package com.deyuanyun.pic.pbf.service;

import com.deyuanyun.pic.pbf.controller.dto.defect.DefectStatisticsDto;
import com.deyuanyun.pic.pbf.domain.DefectInfo;
import com.deyuanyun.pic.pbf.domain.DefectStatistics;
import com.deyuanyun.pic.pbf.enumeration.DefectRepairNode;
import com.deyuanyun.pic.wf.domain.TaskInstance;

import java.util.List;
import java.util.Map;

/**
 * 缺陷管理
 *
 * @author hlw
 * @date
 *
 * History: [修改人][时间][修改描述]
 */
public interface DefectRepairMgrService<T> {

    /**
     * 根据查询条件，查询所有符合条件的 缺陷点 数据
     *
     * @return
     */
    List<DefectInfo> queryDefectInfoList();

    /**
     * 查询出每个缺陷点对应的维修步骤
     *
     * @param defectId 缺陷点编号
     * @return
     */
    List<TaskInstance> queryTaskInstanceList(String defectId);

    /**
     * 得到缺陷统计信息
     *
     * @param repairTaskId 维修任务编号
     * @return
     */
    DefectStatisticsDto getDefectStatistics(String repairTaskId);

    /**
     * 查询缺陷维修节点
     *
     * @param taskInstanceId
     * @return
     */
    T findRepairNode(String taskInstanceId);

    /**
     * 查询缺陷维修节点
     *
     * @param defectId
     * @return
     */
    List<Map<DefectRepairNode, T>> queryRepairNode(String defectId);
}
